查看原文
其他

c#快速热身篇(附例子、代码)

第1章第一个C#程序 

1.2 使用Visual Studio创建和运行

1.2.1 C#控制台应用程序的步骤

(1).新建项目 (2).生成可执行文件 (3).运行

1.2.2 项目文件夹说明

1.2.3 C#的Main() 方法

(1)    Main首字母大写

(2)    返回值可以为void或者iint

(3)    命令行参数是可选的

(4)    四种Main()方法

语法:

[csharp] view plain copy

1.     static void Main(string[] args){}//自动生成  

2.     static int Main(string[] args){}  

3.     static void Main(){}  

static int Main(){}  

1.3  c#中的变量和常量

1.3.1 C#中的数据类型

常用数据类型

 Java

C#

整形

int

int

浮点型

float

float

双精度型

double

double

字符串型

string

string

布尔型

boolean

bool

  

1.3.2 C#中变量的命名规则有哪些?

(1)    组成:数字,英文字母,下划线。

(2)    开头:英文字母,下划线。

(3)    不能使用关键字

(4)    见名知意Camel命名法

1.3.3 c#中的常量

使用const 关键字声明常量

1.4 Console

1.4.1. 控制台应用程序输入/输出方法 

[csharp] view plain copy

1.     //输入方法  

2.     Console.ReadLine();  

3.     //输出方法  

4.     Console.Write();  

5.     Console.WriteLine();  

1.5.2. 理解类和对象

使用命名空间组织程序,引入其他命名空间使用using关键字

1.5.3. 注释

有三种注释类型

单行注释://

多行注释:/*

          */

文档注释:/// 

C#中的region

1.5.4.visual studio调试技巧

1.设置断点

F5:开始调试;

Shift + F5:停止调试;

F9:设置或取消断点;

Ctrl + F9:取消断点;

F10:单步执行。

F2:转到所调用过程或变量的定义。

Ctrl + F2:将焦点转移到类的下拉列表框。

2.监控变量值

 

第2章 c#语法快速热身

2.1 选择结构

2.1.1 if结构

C#和java完全一样

2.1.2 switch结构

紧跟在switch结构后面的表达式的值或变量可以是int,short,byte,char,枚举类型,string等数据类型

2.2 数组和循环

2.2.1 一维数组

C#

[csharp] view plain copy

1.     int[] arr1 = new int[5] { 0,1,2,3,4};  

2.     int[] arr2 = new int[] { 0,1,2,3,4};//省略长度  

3.     int[] arr3 = { 0,1,2,3,4};//省略new  

java

[java] view plain copy

1.     int[] arr2 = new int[] { 0,1,2,3,4};//省略长度  

2.     int arr3[] = new int[] { 0,1,2,3,4};  

3.     int[] arr4 = { 0,1,2,3,4};//省略new  

4.     int arr5[] = { 0,1,2,3,4};//省略new  

4.

[csharp] view plain copy

1.     String line = "他是教小孩的";  

2.     foreach (char c in line)  

3.     {  

4.              Console.WriteLine(c);  

5.     }  

2.3冒泡排序

2.3.1 冒泡排序算法

[csharp] view plain copy

1.     /// <summary>  

2.     /// 从小到大排序  

3.     /// </summary>  

4.     /// <param name="arr"></param>  

5.     public void change(int[] arr){  

6.         for (int i = 0; i < arr.Length -1; i++)  

7.         {  

8.         for (int j = 0; j < arr.Length - 1 - i; j++)  

9.         {  

10.           if (arr[j] > arr[j + 1])  

11.           {  

12.           //交换元素  

13.           int temp = arr[j];  

14.           arr[j] = arr[j + 1];  

15.           arr[j + 1] = temp;  

16.     

17.           }  

18.       }  

19.       }  

20.   }  

第3章       使用属性升级的MyBank

3.1 private 访问修饰符

3.1.2 访问修饰符

访问修饰符

访问权限

访问级别

public

不受任何限制

最高

private

只有类的内部可以使用

最低

3.2 this关键字

在面向对象的编程语言中,this关键字是指当前对象的本身,通过this可以引用当前类的成员变量和方法。

3.3 C#属性 

封装字段——将类中的字段,属性帮到一起

[csharp] view plain copy

1.      public  class Student  

2.     {  

3.         //学员姓名  

4.         private  string _name;  

5.         /// <summary>  

6.         /// get和set都存在:读写属性  

7.         /// 只有get时:只读属性  

8.         /// 只有set时:只写属性  

9.         /// </summary>  

10.       public string Name  

11.       {  

12.           get { return _name; }  

13.           set { _name = value; }  

14.     

15.       }  

16.   }  

对象初始化

[csharp] view plain copy

1.     Student student2 = new Student() { Name="爸爸去哪了"};  

3.4 值传递和引用传递

3.4.1 值传递

[csharp] view plain copy

class Program  

   {  

       //Main()方法  

       static void Main(string[] args)  

       {  

  

           int i1 = 12;  

           int i2 = 15;  

           Console.WriteLine("交换前,i1={0},i2={1}",i1,i2);  

           Swap(i1, i2);  

           Console.WriteLine("交换后,i1={0},i2={1}", i1, i2);  

           Console.ReadLine();  

  

       }  

  

       /// <summary>  

       /// 值传递  

       /// </summary>  

       /// <param name="num1"></param>  

       /// <param name="num2"></param>  

       public static void Swap(int num1, int num2)  

       {  

           int temp;//中间变量  

           temp = num1;  

           num1 = num2;  

           num2 = temp;  

       }  

         

   }  

输出结果:

上面的方法Swap就是只把参数的值传到方法里面,如果在被调用的方法中对参数的值进行了修改,在方法调用之后,参数仍然是原来的值

3.4.2 按引用传递参数

[csharp] view plain copy

1.     class Program  

2.        {  

3.            //Main()方法  

4.            static void Main(string[] args)  

5.            {  

6.       

7.                int i1 = 12;  

8.                int i2 = 15;  

           Console.WriteLine("交换前,i1={0},i2={1}",i1,i2);  

           Swap(ref i1, ref i2);//两个参数必须用关键字“ref”传递  

           Console.WriteLine("交换后,i1={0},i2={1}", i1, i2);  

           Console.ReadLine();  

  

       }  

  

       /// <summary>  

       /// 值传递  

       /// 在c#中要想使参数按引用传递,需要使用ref关键字来修饰参数  

       /// </summary>  

       /// <param name="num1"></param>  

       /// <param name="num2"></param>  

       public static void Swap(ref int num1, ref int num2)  

       {  

           int temp;//中间变量  

           temp = num1;  

           num1 = num2;  

           num2 = temp;  

       }  

         

   }  

输出结果:

利用引用传递参数的方式可以在方法调用之后,仍然保留对参数值得修改。

ref关键字

(1)修饰的参数是按引用传递给调用的方法

(2)方法定义和调用时都必须显示使用

(3)传递到方法中的ref参数必须实现赋初始值

第4章      深入c#的String类

4.1 c#中的String类

4.1.1 常用的字符串处理方法

1.     [csharp] view plain copy

2.     String str1 = "aaa";  

3.     String str2 = "aaa";  

4.     String str3 = "bbbaaaccc aaaFFFaaaggg ";  

5.       

6.     /**  

7.     方法:    public bool Equals(string value)  

8.     摘要:    比较一个字符串与另一个字符串value的值是否相等,  

9.     返回结果:若二者相等,则返回true,若不相等,则返回false  

10.   **/  

11.   bool flag = str1.Equals(str2);  

12.   Console.WriteLine("{0}.Equals({1}) = {2}", str1, str2, flag);  

13.     

14.   /**  

15.   方法:    public static int Compare(string strA, string strB)  

16.   摘要:    比较两个指定的 System.String 对象,并返回一个整数,指示二者在排序顺序中的相对位置  

17.   返回结果:一个 32 位带符号整数,指示两个比较数之间的词法关系。值条件小于零strA 小于 strB。零strA 等于 strB。大于零strA 大于 strB  

18.   **/  

19.   int ci = String.Compare(str3, str1);  

20.   Console.WriteLine("String.Compare({0}, {1}) = {2}", str3, str1, ci);  

21.     

22.   /**  

23.   方法:    public int IndexOf(char value)  

24.   摘要:    获取指定的value字符串在当前字符串中的第一个匹配项的位置。  

25.   返回结果:如果找到了改字符,就返回它的位置(从零开始的索引位置),如果没有找到,则返回-1  

26.   **/  

27.   int ii = str3.IndexOf(str1);  

28.   Console.WriteLine("{0}.IndexOf({1}) = {2}", str3, str1, ii);  

29.     

30.   /**  

31.   方法:    public int LastIndexOf(char value)  

32.   摘要:    报告指定字符串在此实例中的最后一个匹配项的索引位置。  

33.   返回结果:如果找到该字符串,则为 value 的从零开始的索引位置;如果未找到该字符串,则为 -1。如果 value 为 System.String.Empty,则返回值为此实例中的最后一个索引位置。  

34.   **/  

35.   int li = str3.LastIndexOf(str1);  

36.   Console.WriteLine("{0}.LastIndexOf({1}) = {2}", str3, str1, li);  

37.     

38.   /**  

39.   方法:    public static string Join(string separator, params string[] value)  

40.   摘要:    把字符串数组value中的每个字符串用指定的分隔符separator连接  

41.   返回结果:一个由 value 中的元素组成的字符串,这些元素以 separator 字符串分隔。  

42.   **/  

43.   String[] arr = { "三号考试", "都不能走", "考完再走" };  

44.   String str = String.Join(" - ", arr);  

45.   Console.WriteLine("String.Join(\" - \",arr) = {0}", str);  

46.     

47.   /** 

48.   方法:    public string[] Split(params char[] separator) 

49.   摘要:    用指定的分隔符separator分割字符串 

50.   返回结果:分割后的字符串数组 

51.   **/  

52.   String[] arr1 = "雄伟是山的梦,宽阔是海的梦,蔚蓝是天的梦,幸福是百姓梦".Split(',');  

53.   Console.WriteLine("{0}.Split(',')", str1);  

54.   foreach (String temp in arr1)  

55.   {  

56.   Console.WriteLine(temp);  

57.   }  

58.     

59.   /** 

60.   方法:    public string Substring(int startIndex, int length) 

61.   摘要:    从此实例检索子字符串。 子字符串从指定的字符位置开始且具有指定的长度。 

62.   返回结果:与此实例中在 startIndex 处开头、长度为 length 的子字符串等效的一个字符串,如果 startIndex 等于此实例的长度且 length为零,则为 System.String.Empty。 

63.   **/  

64.   Console.WriteLine("{0}.Substring(1, 2)={1}", str3, str3.Substring(1, 4));  

65.     

66.   /** 

67.   方法:    public string ToLower() 

68.   摘要:    返回此字符串转换为小写形式的副本 

69.   返回结果:一个小写字符串 

70.   **/  

71.   Console.WriteLine("{0}.ToLower() = {1}", str3,str3.ToLower());  

72.     

73.   /** 

74.   方法:    public string ToUpper() 

75.   摘要:    返回此字符串转换为大写形式的副本。 

76.   返回结果:当前字符串的大写形式。 

77.   **/  

78.   Console.WriteLine("{0}.ToUpper() = {1}", str3,str3.ToUpper());  

79.     

80.   /** 

81.   方法:    public string Trim() 

82.   摘要:    去掉字符串前后两段多余的空格 

83.   返回结果:从当前字符串的开头和结尾删除所有空白字符后剩余的字符串。 

84.   **/  

85.   Console.WriteLine("{0}.Trim()={1}", str3,str3.Trim());  

86.   Console.ReadLine();  

输出结果:

4.1.4 Format格式化

Format()方法的格式字符串中各种格式化定义字符和示例

[csharp] view plain copy

1.     /** 

2.     方法:format 

3.     摘要:将指定字符串中的格式项替换为两个指定对象的字符串表示形式 

4.     **/  

5.     String str = String.Format("{0}乘以{1}等于{2},{3}",2,3,2*3,"做的很好");  

6.     Console.WriteLine(str);  

7.       

8.       

9.    // C:货币格式              

10.   Console.WriteLine(String.Format("C3={0:C3}", 2000));  

11.   Console.WriteLine(String.Format("C2={0:C2}", 2000));  

12.     

13.   //D十进制格式  

14.   Console.WriteLine(String.Format("D3={0:D3}", 2));  

15.   Console.WriteLine(String.Format("D2={0:D2}", 2));  

16.     

17.   //F小数点后的位数固定  

18.   Console.WriteLine(String.Format("F3={0:F3}", 2000));  

19.   Console.WriteLine(String.Format("F2={0:F2}", 2000));  

20.   Console.WriteLine(String.Format("F2={0:F2}", 2000.9999));  

21.     

22.   //N用逗号(,)分割的数字  

23.   Console.WriteLine(String.Format("N={0:N}", 2500000));  

24.     

25.   //P百分百计数法  

26.   Console.WriteLine(String.Format("P3={0:P3}", 2000));  

27.   Console.WriteLine(String.Format("P2={0:P2}", 0.29768));  

28.     

29.   //十六进制格式  

30.   Console.WriteLine(String.Format("X000={0:X000}", 15));  

31.     

32.   Console.WriteLine(String.Format("X={0:X}", 16));  

33.     

34.   Console.ReadLine();  

运行结果:

35.   [csharp] view plain copy

36.   /** 

37.   方法:{0,-8:F2} 

38.   摘要:以左对齐,宽带是8,保留2位小数的方式输出数值 

39.   **/  

40.     

41.   Console.WriteLine("{0,-8:F2}=[" + String.Format("{0,-8:F2}", 23) + "]");  

42.     

43.   /** 

44.   方法:{0,8:C2} 

45.   摘要:以右对齐,宽度是8,显示货币符号,保留2位小数的方式输出数值 

46.   **/  

47.   Console.WriteLine("{0,8:C2} =[" + String.Format("{0,8:C2}", 23) + "]");  

48.   Console.WriteLine("{0,-20}  =[" + String.Format("{0,-20}", "小明") + "]");  

49.   Console.WriteLine("{0,20:C2}=[" + String.Format("{0,20:C2}", 1000) + "]");  

50.   //D十进制格式  

51.   Console.WriteLine("{0,20:D} =[" + String.Format("{0,20:D}", 1000) + "]");  

52.   //P百分比计数法  

53.   Console.WriteLine("{0,20:P} =[" + String.Format("{0,20:P}", 0.295478) + "]");  

54.   //C货币格式  

55.   Console.WriteLine("{0,20:C2}=[" + String.Format("{0,20:C2}", 0.295478) + "]");  

56.     

57.     

58.   Console.ReadLine();  

输出结果:

4.2 类型转换

4.2.1 简单的类型转换

1.隐式类型转换

59.   [csharp] view plain copy

60.   int ii = 10;  

61.   float ff = ii;  

62.   Console.WriteLine(ff);  

63.   Console.ReadLine();  

2.显示类型转换

 

[csharp] view plain copy

1.      double score = 58.5;//原始成绩  

2.      int bonus = 2;//加分  

3.      int sum;//总分  

4.      sum = score + bonus;//计算总分,正确的是:sum = (int)score + bonus;  

5.      Console.WriteLine(sum);  

“计算总分”的时候报错

 

4.2.2 数值类型与字符串之间的转换

 

[csharp] view plain copy

int i = int.Parse("111");//字符串转换成整形  

float ff = float.Parse("333");//字符串转换成单精度浮点型的  

double dd = double.Parse("88.3");//字符串转换成双精度浮点型  

  

String str = i.ToString();//数值类型转换为字符串  

Console.ReadLine();  

4.2.3使用Convert类进行转换

 

1.    [csharp] view plain copy

2.    double myDouble = 85.63;//原始数据  

3.    int myInt = Convert.ToInt32(myDouble);//转换为整形  

4.    float myFloat = Convert.ToSingle(myDouble);// 转换为浮点型  

5.    string str = Convert.ToString(myDouble);//转换为字符串型  

内容太多,打不完

所以小师妹给您整理好了,你可以免费领取

 领 取 方 法

具 体 步 骤

1.长按下方二维码识别关注或微信关注公众号 ind400(机器人配视觉)


2.进入公众号,点击左下角的键盘图标,到聊天界面


3.就像和朋友聊天一样,输入关键字“c#热身篇”,然后按下发送


4.按照提示进行操作,立即获得c#热身篇资料


5.加微信相互学习   guangguang5061


关注后可免费获取更多精神内容

恭候您的加入

文章来源:网络,如有侵权,联系删除。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存